import { http } from '@/utils/http'

/**
 * PagePostVO
 */
export interface Response {
  countId?: string
  current?: number
  maxLimit?: number
  optimizeCountSql?: boolean
  optimizeJoinOfCountSql?: boolean
  orders?: OrderItem[]
  records?: PostVO[]
  searchCount?: boolean
  size?: number
  total?: number
  [property: string]: any
}

/**
 * OrderItem
 */
export interface OrderItem {
  asc?: boolean
  column?: string
  [property: string]: any
}

export interface PostVO {
  /**
   * 头像URL
   */
  avatarUrl?: string
  /**
   * 分类
   */
  categorize?: number
  /**
   * 收藏数
   */
  collectNum?: number
  /**
   * 评论数
   */
  commentNum?: number
  /**
   * 帖子内容
   */
  content?: string
  /**
   * 创建时间
   * 创建人
   */
  createdBy?: string
  /**
   * 创建时间
   */
  createdTime?: string
  /**
   * 删除标记
   */
  deleted?: number
  /**
   * id字段
   */
  id?: number
  /**
   * 图片URL
   */
  imageUrl?: string
  /**
   * 点赞数
   */
  likeNum?: number
  /**
   * 位置
   */
  location?: string
  /**
   * 帖子ID
   */
  postId?: number
  /**
   * 备注
   */
  remark?: string
  /**
   * 标签
   */
  tag?: string
  /**
   * 更新时间
   * 更新人
   */
  updatedBy?: string
  /**
   * 更新时间
   */
  updatedTime?: string
  /**
   * 用户ID
   */
  userId?: number
  /**
   * 用户名
   */
  username?: string
  [property: string]: any
}

/** GET 请求 */
export const getPostAPI = (keywords: number, location: string) => {
  return http.get<PostVO>('/post/pageQuery', { keywords, location })
}
export const getOnePostAPI = (id: number) => {
  return http.get<PostVO>('/post/getPost', { id })
}
export const getPostListAPI = (pageSize: number, pageNo: number, keywords: string) => {
  return http.get<Response>('/post/pageQueryList', { pageSize, pageNo, keywords })
}

// /** POST 请求 */
// export const postFooAPI = (name: string) => {
//   return http.post<PostVO>('/foo', { name }, { name })
// }
